package com.strange3.modulescontroller
{
	import com.strange3.modulesplayer.ModulesPlayer;
	import com.strange3.utils.modules.ModuleCreatorsManager;
	
	public interface IModulesController
	{
		/**
		 * Funkcja do ustawiania widoku kontrolera,
		 * czyli komponentu w którym bdzie on wyswietlal aktwyne moduly 
		 * @param view
		 * 
		 */
		function registerView(view:ModulesPlayer):void;
		
		/**
		 * Funkcja do ustawiania modelu kontrolera
		 * czyli komponentu, obiektu, ktory bedzie udostepnial
		 * metody do pozyskiwania nowych modulow
		 * @param model
		 * 
		 */
		function registerModel(model:ModuleCreatorsManager):void;
		
		
		/**
		 * GLOWNA FUNKCJA KONTROLERA
		 * Jej zadanie to wstepna inicjalizacja widoku na podstawie modelu,
		 * a takze obsluga wszystkich akcji i zdarzen, ktore nas interesuja
		 * juz w konretnej implementacji kontrolera  
		 * 
		 */
		function start():void;
	}
}